//home模块的小仓库
import { reqCategoryList,reqGetBannerList,reqFloorList } from "@/api"


const actions = {
    /* 通过api里面的接口函数调用 向服务器发送请求 获取数据  结构出$store中的commit进行下一步 这里使用到了async和awaut语法糖 处理promise返回成功的回调 */
    async categoryList({ commit }) {
        let result = await reqCategoryList()
        if (result.code == 200) {
            commit('CATEGORYLIST', result.data)
        }
    },
    /* 获取首页轮播图的数据 这次请求的时mock模拟的数据 所以会被拦截 返回的是mock中模拟的数据 */
    async getBannerList({commit}){
         let result = await reqGetBannerList()
        if (result.code == 200) {
            commit('GETBANNERLIST', result.data)
        }
    },
    async getFloorsList({commit}){
        let result =await reqFloorList()
        if(result.code==200){
            commit ('GETFLOORSLIST',result.data)
        }
    },
}

const mutations = {
    /* 将三级列表响应回来的数据存进state中 */
    CATEGORYLIST(state, categoryList) {
        state.categoryList = categoryList
    },
    /* 将三级列表响应回来的数据存进state中 */
    GETBANNERLIST(state,bannerList){
        state.bannerList=bannerList
    },
    GETFLOORSLIST(state,floorsList){
        state.floorsList=floorsList
    }
}

const getters = {

}

const state = {
    /* state中的数据默认初始值不能乱写  服务器返回的是对象 起始值就应该是个对象 服务器返回的是数组 就应该是个数组 */
    categoryList: [],/* 三级列表数据 */
    bannerList:[],/* 首页伦比图数据 */
    floorsList:[],/* 家用电器floor数据 */
}

/* 把它们向外暴露 */
export default {
    mutations,
    actions,
    getters,
    state
}